package com.dudu.dao;

import java.sql.Connection;
import java.util.List;

import net.sf.json.JSONObject;

import org.apache.log4j.Logger;

import com.dudu.model.AppExtend;
import com.dudu.model.PushAccount;

import core.CoreDao;
import core.db.DBConnectionUtil;

/**
 * 账号合并后向副账号发送主账号信息
 * 
 * @author gaoxs
 * 
 */
public class PushAccountDao {
	// 日志输出
	private static final Logger log = Logger.getLogger(PushAccountDao.class.getSimpleName());
	/**
	 * 新增推送内容
	 * @param coreDao
	 * @param bean
	 * @return
	 */
	public int insert(CoreDao coreDao,PushAccount bean){
		log.info("PushAccountDao.insert");
		//数据库连接
		Connection con = null;
		//最终返回结果
		int result=-1;
		try{
			//获取数据库连接
			con = DBConnectionUtil.getDBConnection("emate1");
			//拼写sql
			StringBuffer sql = new StringBuffer("INSERT INTO t_push_account(record_url, cust_account, vice_app_key, vice_cust_account, code, create_time,send_time) VALUES(?,?,?,?,?,sysdate(),sysdate())");
			//查询获取结果
			List<JSONObject> list = coreDao.serviceJsonSql(con, sql.toString(), new Object[] { 
				bean.getRecord_url(),bean.getCust_account(),bean.getVice_app_key(),bean.getVice_cust_account(),bean.getCode()
			} );
			//获取插入的结果
			if (list != null && list.size() > 0) {
				JSONObject obj = list.get(0);
				result = obj.optInt("result");
			}
			
		}catch(Exception e){
			e.printStackTrace();
			log.error("PushAccountDao.insert 新增推送内容表出错："+e);
		}finally {
			DBConnectionUtil.close(null, null, con);
		}
		return result;	
	}
	/**
	 * 更新推送内容(主要是状态和推送时间)
	 * @param coreDao
	 * @param bean
	 * @return
	 */
	public int update(CoreDao coreDao,PushAccount bean){
		log.info("PushAccountDao.update");
		//数据库连接
		Connection con = null;
		//最终返回结果
		int result=-1;
		try{
			//获取数据库连接
			con = DBConnectionUtil.getDBConnection("emate1");
			//拼写sql
			StringBuffer sql = new StringBuffer(
					" UPDATE t_push_account set record_url=?,cust_account=?,"
					+ "vice_app_key=?,vice_cust_account=?,"
					+ "code=?,send_time=sysdate()");
			sql.append(" where id=?");
			
			//查询获取结果
			List<JSONObject> list = coreDao.serviceJsonSql(con, sql.toString(), new Object[] { 
				bean.getRecord_url(),bean.getCust_account(),
				bean.getVice_app_key(),bean.getVice_cust_account(),
				bean.getCode(),bean.getId()
			} );
			//获取插入的结果
			if (list != null && list.size() > 0) {
				JSONObject obj = list.get(0);
				result = obj.optInt("result");
			}
		}catch(Exception e){
			e.printStackTrace();
			log.error("PushAccountDao.update 更新推送内容表出错："+e);
		}finally {
			DBConnectionUtil.close(null, null, con);
		}
		return result;
	}
	/**
	 * 获取发送列表（只显示500条）
	 * @param coreDao
	 * @return
	 */
	public List<PushAccount> queryAll(CoreDao coreDao){
		log.info("PushAccountDao.queryAll");
		//数据库连接
		Connection con = null;
		//最终返回结果
		List<PushAccount> result=null;
		
		try {
			//获取数据库连接
			con = DBConnectionUtil.getDBConnection("emate1");
			//拼写sql
			StringBuffer sql = new StringBuffer("SELECT * FROM t_push_account where code=1 limit 500");
			//查询获取结果
			List<JSONObject> list = coreDao.serviceJsonSql(con, sql.toString(), new Object[] {  } );
			//类型转换
			if (list != null && list.size() > 0) {
				//类型转换
				 result = coreDao.covertToBean(list, PushAccount.class);
			}
			
		} catch (Exception ex) {
			ex.printStackTrace();
			log.error("获取发送列表（只显示500条）出错："+ex);
		} finally {
			DBConnectionUtil.close(null, null, con);
		}
		return result;
	}
}
